Method and interface for linking terms in an electronic message to program information

ABSTRACT

The method of linking terms in an electronic message to program information in an electronic program guide (EPG) comprises the steps of receiving an electronic message, comparing terms in the electronic message to terms in the program information of the EPG, and displaying the electronic message so that any terms in the electronic message which have a match in the program information based on the step of comparing terms, are distinguishable from terms which have no such match. The electronic message interface is adapted to link terms in an electronic message to program information in an electronic program guide (EPG).

This application claims the benefit of 60/070,745, filed Jan. 8, 1998.

FIELD OF INVENTION

This invention generally relates to a method and interface for linkingterms in an electronic message to program information.

BACKGROUND OF INVENTION

Electronic devices such as televisions and personal computers (PC)require a control system that includes a user interface system.Typically, a user interface provides information to a user andsimplifies use of the device. One example of a user interface is anElectronic Program Guide (EPG) in a television system.

An EPG is an interactive, on-screen display feature that displaysinformation analogous to TV listings found in local newspapers or otherprint media. In addition, an EPG also includes information necessary forcollating and decoding programs. An EPG provides information about eachprogram within the time frames covered by the EPG, which typicallyranges from the next hour up to seven days. The information contained inan EPG includes programming characteristics such as channel number,program title, start time, end time, elapsed time, time remaining,rating (if available), topic, theme, and a brief description of theprogram's content. EPGs are usually arranged in a two-dimensional tableor grid format with time information on one axis and channel informationon the other axis.

Unlike non-interactive guides that reside on a dedicated channel andmerely scroll through the current programming on the other channels,usually showing only the programs which begin within the next 2 to 3hours, EPGs allow viewers to select any channel at any time during someperiod into the future, e.g., up to seven days forward. Further EPGfeatures include the ability to highlight individual cells of the gridcontaining program information. Once highlighted, the viewer can performfunctions pertaining to that selected program. For instance, the viewercould instantly switch to that program if it is currently being aired.Viewers could also program one touch video cassette recording (VCR) orthe like if the television is properly configured and connected to arecording device. Such EPGs are known in the art and described, forinstance, in U.S. Pat. Nos. 5,353,121; 5,479,268; and 5,479,266 issuedto Young et al. and assigned to StarSight Telecast, Inc.

In addition, U.S. Pat. No. 5,515,106, issued to Chaney etc., andassigned to the same assignee of the present invention, describes indetail an exemplary embodiment including data packet structure necessaryto implement an exemplary program guide system. The exemplary datapacket structure is designed so that both the channel information (e.g.,channel name, call letters, channel number, type, etc.) and the programdescription information (e.g., title, rating, star, etc.) relating to aprogram may be transmitted from a program guide database distributor toa subscriber's receiving apparatus in an efficient manner.

User interfaces such as EPGs are applicable to analog and digitaltelevision systems and to other electronic devices such as personalcomputers. As electronic devices become increasingly complex with amultitude of features, the need for a robust and easy-to-use userinterface becomes ever more important. For example, separate electronicsystems having respective interfaces for controlling features of eachsystem are now being combined into a single system requiring a singleuser interface. One specific example is the so-called PCTV whichincludes features of both a personal computer and a television. The userinterface system for such a device must provide both clear communicationof computer and television related information and provide for simplecontrol of both computer and television related features.

Typically, however, the computer-related programs and operations areimplemented independently of the television programs and operations. Forexample, when the user elects to compose, read and/or send an electronicmessage such as electronic message or electronic file, this is performedindependently of any tuning, recording, and/or replaying of audio,video, or television programs. Likewise, the audio, video, or televisionprogramming, tuning, recording and/or replaying is performedindependently of any information contained in electronic messages. Whiletelevision programming information can be manually typed into anelectronic message, this requires the sender to manually insert into theelectronic message enough tuning information to enable the recipient toreceive the subject program. The recipient then must actually read suchprogram information and tune his television, audiovisual recordingdevice, audio receiver and/or recorder, or the like to the relevantprogram for implementation of the program. The term “implementation”includes, for example, displaying, audibly broadcasting, replaying,recording, and the like.

If the recipient mistakenly transcribes or forgets the information fromthe electronic message, the wrong program may be implemented. Likewise,if the sender of the electronic message mistakenly reads a part of theprogramming information when typing this information into the electronicmessage (e.g., wrong time, wrong channel number, etc.) or if the sendermakes a typographical error, then the recipient may implement the wrongprogram or may attempt to implement the program at the wrong time. Thiscan be especially problematic if the recipient attempts to implement theprogram after it has aired. The sender also might inadvertently leaveout an important part of the programming information, such as the timeof broadcast, the channel, etc.

The potential for mistakes and miscommunication in sending and receivingprogramming information, however, is not the only problem associatedwith such conventional techniques. Another problem lies in the lack ofconvenience. It is inconvenient for the sender to manually type theprogramming information into the electronic message. It also isinconvenient for the recipient to read the entire compilation of programinformation and then manually implement the subject program. Notably,reading of such information may break the recipient's concentration onthe subject matter of the writing. In this regard, when the programminginformation is not concise, it tends to distract the reader.

There is consequently a need for a quick and convenient way ofimplementing a program which is referenced in an electronic messagingservice such as e-mail without having to read, memorize, or manuallytranscribe all of the program information needed to implement theprogram.

SUMMARY OF THE INVENTION

The present invention overcomes at least one of the aforementionedproblems and/or the aforementioned needs by providing a convenient wayof electronically linking program information from an interactiveinterface of an audio, video or audiovisual device with the contents ofan electronic message such as e-mail message.

The present invention provides a convenient way of implementing aprogram identified in an electronic message without having to memorize,manually transcribe, or otherwise review all of the requisiteprogramming information.

The present invention also provides a convenient way of electronicallylinking program information with the contents of an electronic message.

Therefore, a method of linking terms in an electronic message to programinformation in an electronic program guide (EPG) comprises the steps ofreceiving an electronic message, comparing terms in the electronicmessage to terms in the program information of the EPG, and displayingthe electronic message so that any terms in the electronic message whichhave a match in the program information based on the step of comparingterms, are distinguishable from terms which have no such match.

Also, an electronic message interface adapted to link terms in anelectronic message to program information in an electronic program guide(EPG) comprises a receiver, a comparison unit, and a display device. Thereceiver is adapted to receive an electronic message. The comparisonunit is associated with the receiver and is adapted to compare terms inthe electronic message to terms in the program information of the EPG.The display device is connected at least indirectly to the comparisonunit and is adapted to display the electronic message so that any termsin the electronic message which have a match in the program informationbased on the comparing of terms, are distinguishable from terms whichhave no such match.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 shows an example of a television system suitable for processingelectronic messages, generating an electronic program guide, andelectronically linking program information with the contents of anelectronic message, in accordance with the present invention.

FIG. 2. shows an example of a digital video processing apparatussuitable for processing electronic messages, generating an electronicprogram guide, and electronically linking program information with thecontents of an electronic message, in accordance with the presentinvention.

FIG. 3 is a flow chart of a method of electronically linking programinformation with the contents of an electronic message in accordancewith a preferred implementation of the present invention.

FIG. 4 shows an electronic message display according to a preferredimplementation of the present invention.

FIG. 5 shows an exemplary EPG menu according to a preferredimplementation of the present invention.

DETAILED DESCRIPTION

FIG. 1 shows an example of a television system suitable for processingprogram guide information and electronic messages, as well as forelectronically linking electronic messages to programming informationand programming information to electronic messages, in accordance withthe present invention. The television receiver shown in FIG. 1 iscapable of processing both analog NTSC television signals and Internetinformation. The system shown in FIG. 1 has a first input 1100 forreceiving television signal RF_IN at RF frequencies and a second input1102 for receiving baseband television signal VIDEO IN. Signal RF_IN maybe supplied from a source such as an antenna or cable system whilesignal VIDEO IN may be supplied, for example, by a video cassetterecorder (VCR). Tuner 1105 and IF processor 1130 operate in aconventional manner for tuning and demodulating a particular televisionsignal that is included in signal RF_IN. IF processor 1130 producesbaseband video signal VIDEO representing the video program portion ofthe tuned television signal. IF processor 1130 also produces a basebandaudio signal that is coupled to an audio processing section (not shownin FIG. 1) for further audio processing. Although FIG. 1 shows input1102 as a baseband signal, the television receiver could include asecond tuner and IF processor similar to units 1105 and 1130 forproducing a second baseband video signal from either signal RF_IN orfrom a second RF signal source.

The system shown in FIG. 1 also includes a main microprocessor (mP) 1110for controlling components of the television receiver such as tuner1105, picture-in-picture processing unit 1140, video signal processor1155, and StarSight® data processing module 1160. As used herein, theterm “microprocessor” represents various devices including, but notlimited to, microprocessors, microcomputers, microcontrollers andcontrollers. Microprocessor 1110 controls the system by sending andreceiving both commands and data via serial data bus 1 ²C BUS whichutilizes the well-known 1 ²C serial data bus protocol. Morespecifically, central processing unit (CPU) 1112 within mP 1110 executescontrol programs contained within memory, such as EEPROM 1127 shown inFIG. 1. in response to commands provided by a user, e.g., via IR 110remote control 1125 and IR receiver 1122. For example, activation of a“CHANNEL UP” feature on remote control 1125 causes CPU 1112 to send a“change channel” command along with channel data to tuner 1105 via I²CBUS. As a result, tuner 1105 tunes the next channel in the channel scanlist. Other examples of control programs stored in EEPROM 1127 aresoftware for implementing the operations shown in FIG. 3 in accordancewith the present invention as to be described below.

Main microprocessor 1110 also controls the operation of a communicationsinterface unit 1113 for providing the capability to upload and downloadinformation to and from the Internet.

Communication interface unit 1113 includes, for example, a modem forconnecting to an Internet service provider, e.g., via a telephone lineor via a cable television line. The communication capability allows thesystem shown in FIG. 1 to provide electronic message capability andInternet related features such as web browsing in addition to receivingtelevision programming.

CPU 1112 controls functions included within mP 1110 via bus 1119 withinmP 1110. In particular. CPU 1112 controls auxiliary data processor 1115and on-screen display (OSD) processor 1117. Auxiliary data processor1115 extracts auxiliary data such as StarSight® data from video signalPIPV.

StarSight® data which provides program guide data information in a knownformat is typically received only on a particular television channel andthe television receiver must tune that channel to extract StarSight®data. To prevent StarSight® data extraction from interfering with normaluse of the television receiver, CPU 1112 initiates StarSight® dataextraction by tuning the particular channel only during a time periodwhen the television receiver is usually not in use (e.g., 2:00 AM). Atthat time, CPU 1112 configures decoder 1115 such that auxiliary data isextracted from horizontal line intervals such as line 16 that are usedfor StarSight® data. CPU 1112 controls the transfer of extractedStarSight® data from decoder 1115 via I²C BUS to StarSight® module 1160.A processor internal to the module formats and stores the data in memorywithin the module. In response to the StarSight® EPG display beingactivated (e.g., a user activating a particular key on remote control1125), CPU 1112 transfers formatted StarSight® EPG display data fromStarSight® module 1160 via I²C BUS to OSD processor 1117.

OSD processor 1117 operates in a conventional manner to produce R, G,and B video signals OSD_RGB that, when coupled to a display device, willproduce a displayed image representing on-screen display informationsuch as graphics and/or text comprising an EPG. OSD processor 1117 alsoproduces control signal FSW which is intended to control a fast switchfor inserting signals OSD_RGB into the system's video output signal attimes when an on-screen display is to be displayed. For example, when auser enables an EPG, e.g., by activating a particular switch on remotecontrol 1125. CPU 1112 enables processor 1117. In response, processor1117 produces signals OSD_RGB representing the program guide datainformation previously extracted and already stored in memory, asdiscussed above. Processor 1117 also produces signal FSW indicating whenthe EPG is to be displayed.

Video signal processor (VSP) 1155 performs conventional video signalprocessing functions, such as luma and chroma processing. Output signalsproduced by VSP 1155 are suitable for coupling to a display device,e.g., a kinescope or LCD device (not shown in FIG. 1), for producing adisplayed image. VSP 1155 also includes a fast switch for couplingsignals produced by OSD processor 1117 to the output video signal pathat times when graphics and/or text is to be included in the displayedimage. The fast switch is controlled by control signal FSW which isgenerated by OSD processor 1117 in main microprocessor 1110 at timeswhen text and/or graphics are to be displayed.

The input signal for VSP 1155 is signal PIPV that is output bypicture-in-picture (PIP) processor 1140. When a user activates PIP mode,signal PIPV represents a large picture (large pix) into which a smallpicture (small pix) is inset. When PIP mode is inactive, signal PIPVrepresents just the large pix, i.e., no small pix signal is included insignal PIPV. PIP processor 1140 provides the described functionality ina conventional manner using features included in unit 1140 such as avideo switch, analog-to-digital converter (ADC), RAM, and digital toanalog converter (DAC).

For an EPG display, the display data included in the EPG display isproduced by OSD processor 1117 and included in the output signal by VSP1155 in response to fast switch signal FSW. When controller 1110 detectsactivation of the EPG display, e.g. when a user presses an appropriatekey on remote control 1125, controller 1110 causes OSD processor 1117 toproduce the EPG display using information such as program guide datafrom StarSight® module 1160. Controller 1110 causes VSP 1155 to combinethe EPG display data from OSD processor 1117 and the video image signalin response to signal FSW to produce a display including EPG. The EPGcan occupy all or only a portion of the display area.

When the EPG display is active, controller 1110 executes a controlprogram stored in EEPROM 1127. The control program monitors the locationof a position indicator, such as a cursor and/or highlighting, in theEPG display. A user controls the location of the position indicatorusing direction and selection keys of remote control 1125.Alternatively, the system could include a mouse device. Controller 1110detects activation of a selection device, such as clicking a mousebutton, and evaluates current cursor location information in conjunctionwith EPG data being displayed to determine the function desired, e.g.,tuning a particular program. Controller 1110 subsequently activates thecontrol action associated with the selected feature.

The processing and displaying of a program guide in accordance with thepresent invention may be implemented using a combination of software andhardware. For example, referring to FIG. 1, display of an EPG may beimplemented by software in memory such as EEPROM 1127. Activation of anEPG. e.g., by a user pressing an EPG related button on remote control1125, causes CPU 1112 to execute the EPG software routine. As part ofgenerating an EPG display, CPU 1112 also accesses EPG data and graphicsthat may be stored in StarSight module 1160 via the I2C bus. Undercontrol of the EPG software routine stored in EEPROM 1127, CPU 1112enables OSD processor 1117 which formats the EPG data into a formsuitable for producing an OSD representing the EPG data and graphics.The OSD data produced by OSD processor 1117 is coupled to video signalprocessor (VSP) 1155 via signal lines OSD_RGB. A fast switch in VSP 1155couples the EPG OSD data to the output of VSP 1155 under control ofsignal FSW. That is, the software routine being executed by CPU 1112determines when the EPG data is to be displayed (e.g., what portion ofthe display) and sets signal FSW to the appropriate state for causingthe fast switch to couple the EPG data to the output.

An exemplary embodiment of the features of the system shown in FIG. 1that have been described thus far comprises an ST9296 microprocessorproduced by SGS-Thomson Microelectronics for providing the featuresassociated with mP 1110; an M65616 picture-in-picture processor producedby Mitsubishi for providing the described basic PIP functionalityassociated with PIP processor 1140; and an LA7612 video signal processorproduced by Sanyo for providing the functions of VSP 1155.

FIG. 2 shows another example of an electronic system suitable forprocessing program guide information and electronic messages, as well asfor electronically linking contents of an electronic message to programinformation. As described below, the system shown in FIG. 2 is an MPEGcompatible system for receiving MPEG encoded transport streamsrepresenting broadcast programs and is also capable of processingInternet information, including electronic messaging such as e-mail. Thesystem shown in FIG. 2 is exemplary only. User interface systems arealso applicable to other types of digital signal processing devicesincluding non-MPEG compatible systems, involving other types of encodeddatastreams. For example, other devices include digital video disc (DVD)systems and MPEG program streams, and systems combining computer andtelevision functions such as the so-called “PCTV”. Further, although thesystem described below is described as processing broadcast programs,this is exemplary only. The term ‘program’ is used to represent any formof packetized data such as telephone messages, computer programs,Internet data, audio presentations (e.g., from a remote source or from alocal source), visual presentations, audiovisual presentations (e.g.,from a remote source or a local source), or other communications, forexample.

In overview, in the video receiver system of FIG. 2, a carrier modulatedwith video data is received by antenna 10 and processed by inputprocessor unit 15. The resultant digital output signal is demodulated bydemodulator 20 and decoded by decoder 30. The output from decoder 30 isprocessed by transport system 25 which is responsive to commands fromremote control unit 125. System 25 provides compressed data outputs forstorage, further decoding, or communication to other devices.

Video and audio decoders 85 and 80 respectively, decode the compresseddata from system 25 to provide outputs for display. Data port 75provides an interface for communication of the compressed data fromsystem 25 to other devices such as a computer or High DefinitionTelevision (HDTV) receiver, for example. Storage device 90 stores thecompressed data from system 25 on storage medium 105. Device 90, in aplayback mode also supports retrieval of the compressed data fromstorage medium 105 for processing by system 25 for decoding,communication to other devices or storage on a different storage medium(not shown to simplify drawing).

Considering FIG. 2 in detail, a carrier modulated with video datareceived by antenna 10, is converted to digital form and processed byinput processor 15. Processor 15 includes radio frequency (RF) tuner andintermediate frequency (IF) mixer and amplification stages fordown-converting the input video signal to a lower frequency bandsuitable for further processing. The resultant digital output signal isdemodulated by demodulator 20 and decoded by decoder 30. The output fromdecoder 30 is further processed by transport system 25.

Multiplexer (mux) 37 of service detector 33 is provided, via selector35, with either the output from decoder 30, or the decoder 30 outputfurther processed by a descrambling unit 40. Descrambling unit 40 maybe, for example, a removable unit such as a smart card in accordancewith ISO 7816 and NRSS (National Renewable Security Standards) Committeestandards (the NRSS removable conditional access system is defined inEIA Draft Document IS-679, Project PN-3639). Selector 35 detects thepresence of an insertable, compatible, descrambling card and providesthe output of unit 40 to mux 37 only if the card is currently insertedin the video receiver unit. Otherwise selector 35 provides the outputfrom decoder 30 to mux 37. The presence of the insertable card permitsunit 40 to descramble additional premium program channels, for example,and provide additional program services to a viewer. It should be notedthat in the preferred embodiment NRSS unit 40 and smart card unit 130(smart card unit 130 is discussed later) share the same system 25interface such that only either an NRSS card or a smart card may beinserted at any one time. However, the interfaces may also be separateto allow parallel operation.

The data provided to mux 37 from selector 35 is in the form of an MPEGcompliant packetized transport datastream as defined in MPEG systemsstandard section 2.4 and includes program guide information and the datacontent of one or more program channels. The individual packets thatcomprise particular program channels are identified by PacketIdentifiers (PIDs). The transport stream contains Program SpecificInformation (PSI) for use in identifying the PIDs and assemblingindividual data packets to recover the content of all the programchannels that comprise the packetized datastream. Transport system 25,under the control of the system controller 115, acquires and collatesprogram guide information from the input transport stream, storagedevice 90 or an Internet service provider via the communicationinterface unit 116. The individual packets that comprise eitherparticular program channel content or Program Guide information, areidentified by their Packet Identifiers (PIDs) contained within headerinformation. As discussed above, the program description may comprisedifferent program descriptive fields such as title, star, rating, etc.,relating to a program.

The user interface incorporated in the video receiver shown in FIG. 2enables a user to activate various features by selecting a desiredfeature from an on-screen display (OSD) menu. The OSD menu may includean electronic program guide (EPG) as described above and other featuresdiscussed below. Data representing information displayed in the OSD menuis generated by system controller 115 in response to stored programguide information, stored graphics information, and/or program guide andgraphics information received via the input signal (e.g., StarSightdata) as described above. The software control program may be stored,for example, in embedded memory (not shown) of system controller 115.

Using remote control unit 125 (or other selection means such as a mouse)a user can select from the OSD menu items such as a program to beviewed, a program to be stored, the type of storage media and manner ofstorage. System controller 115 uses the selection information, providedvia remote unit interface 120, to configure system 25 to select theprograms for storage and display and to generate PSI suitable for theselected storage device and media. Controller 115 configures system 25elements 45, 47, 50, 55, 65 and 95 by setting control register valueswithin these elements via a data bus and by selecting signal paths viamuxes 37 and 110 with control signal C.

In response to control signal C, mux 37 selects either, the transportstream from unit 35, or in a playback mode, a datastream retrieved fromstorage device 90 via store interface 95. In normal, non-playbackoperation, the data packets comprising the program that the userselected to view are identified by their PIDs by selection unit 45. Ifan encryption indicator in the header data of the selected programpackets indicates the packets are encrypted, unit 45 provides thepackets to decryption unit 50. Otherwise unit 45 provides non-encryptedpackets to transport decoder 55. Similarly, the data packets comprisingthe programs that the user selected for storage are identified by theirPIDs by selection unit 47. Unit 47 provides encrypted packets todecryption unit 50 or non-encrypted packets to mux 110 based on thepacket header encryption indicator information.

The functions of decryptors 40 and 50 may be implemented in a singleremovable smart card which is compatible with the NRSS standard. Thisapproach places all security related functions in one removable unitthat easily can be replaced if a service provider decides to changeencryption technique or to permit easily changing the security system,e.g., to descramble a different service.

Units 45 and 47 employ PID detection filters that match the PIDs ofincoming packets provided by mux 37 with PID values pre-loaded incontrol registers within units 45 and 47 by controller 115. Thepre-loaded PIDs are used in units 47 and 45 to identify the data packetsthat are to be stored and the data packets that are to be decoded foruse in providing a video image. The pre-loaded PIDs are stored inlook-up tables in units 45 and 47. The PID look-up tables are memorymapped to encryption key tables in units 45 and 47 that associateencryption keys with each pre-loaded PID. The memory mapped PID andencryption key look-up tables permit units 45 and 47 to match encryptedpackets containing a pre-loaded PID with associated encryption keys thatpermit their decryption. Non-encrypted packets do not have associatedencryption keys. Units 45 and 47 provide both identified packets andtheir associated encryption keys to decryptor 50. The PID look-up tablein unit 45 is also memory mapped to a destination table that matchespackets containing pre-loaded PIDs with corresponding destination bufferlocations in packet buffer 60. The encryption keys and destinationbuffer location addresses associated with the programs selected by auser for viewing or storage are pre-loaded into units 45 and 47 alongwith the assigned PIDs by controller 115. The encryption keys aregenerated by ISO 7816-3 compliant smart card system 130 from encryptioncodes extracted from the input datastream. The generation of theencryption keys is subject to customer entitlement determined from codedinformation in the input datastream and/or pre-stored on the insertablesmart card itself (International Standards Organization document ISO7816-3 of 1989 defines the interface and signal structures for a smartcard system).

The packets provided by units 45 and 47 to unit 50 are encrypted usingan encryption techniques such as the Data Encryption Standard (DES)defined in Federal Information Standards (FIPS) Publications 46, 74 and81 provided by the National Technical Information Service, Department ofCommerce. Unit 50 decrypts the encrypted packets using correspondingencryption keys provided by units 45 and 47 by applying decryptiontechniques appropriate for the selected encryption algorithm. Thedecrypted packets from unit 50 and the non-encrypted packets from unit45 that comprise the program for display are provided to decoder 55. Thedecrypted packets from unit 50 and the non-encrypted packets from unit47 that comprise the program for storage are provided to mux 110.

Unit 60 contains four packet buffers accessible by controller 115. Oneof the buffers is assigned to hold data destined for use by controller115 and the other three buffers are assigned to hold packets that aredestined for use by application devices 75, 80 and 85. Access to thepackets stored in the four buffers within unit 60 by both controller 115and by application interface 70 is controlled by buffer control unit 65.Unit 45 provides a destination flag to unit 65 for each packetidentified by unit 45 for decoding. The flags indicate the individualunit 60 destination locations for the identified packets and are storedby control unit 65 in an internal memory table. Control unit 65determines a series of read and write pointers associated with packetsstored in buffer 60 based on the First-In-First-Out (FIFO) principle.The write pointers in conjunction with the destination flags permitsequential storage of an identified packet from units 45 or 50 in thenext empty location within the appropriate destination buffer in unit60. The read pointers permit sequential reading of packets from theappropriate unit 60 destination buffers by controller 115 andapplication interface 70.

The non-encrypted and decrypted packets provided by units 45 and 50 todecoder 55 contain a transport header as defined by section 2.4.3.2 ofthe MPEG systems standard. Decoder 55 determines from the transportheader whether the non-encrypted and decrypted packets contain anadaptation field (per the MPEG systems standard). The adaptation fieldcontains timing information including, for example, Program ClockReferences (PCRs) that permit synchronization and decoding of contentpackets. Upon detection of a timing information packet, that is a packetcontaining an adaptation field, decoder 55 signals controller 115, viaan interrupt mechanism by setting a system interrupt, that the packethas been received. In addition, decoder 55 changes the timing packetdestination flag in unit 65 and provides the packet to unit 60. Bychanging the unit 65 destination flag, unit 65 diverts the timinginformation packet provided by decoder 55 to the unit 60 buffer locationassigned to hold data for use by controller 115, instead of anapplication buffer location.

Upon receiving the system interrupt set by decoder 55, controller 115reads the timing information and PCR value and stores it in internalmemory. PCR values of successive timing information packets are used bycontroller 115 to adjust the system 25 master clock (27 MHz). Thedifference between PCR based and master clock based estimates of thetime interval between the receipt of successive timing packets,generated by controller 115, is used to adjust the system 25 masterclock. Controller 115 achieves this by applying the derived timeestimate difference to adjust the input control voltage of a voltagecontrolled oscillator used to generate the master clock. Controller 115resets the system interrupt after storing the timing information ininternal memory.

Packets received by decoder 55 from units 45 and 50 that contain programcontent including audio, video, caption, and other information, aredirected by unit 65 from decoder 55 to the designated application devicebuffers in packet buffer 60. Application control unit 70 sequentiallyretrieves the audio, video, caption and other data from the designatedbuffers in buffer 60 and provides the data to corresponding applicationdevices 75, 80 and 85. The application devices comprise audio and videodecoders 80 and 85 and high speed data port 75. For example, packet datacorresponding to a composite program guide generated by the controller115 as described above, may be transported to the video decoder 85 forformatting into video signal suitable for display on a monitor (notshown) connected to the video decoder 85. Also, for example, data port75 may be used to provide high speed data such as computer programs, forexample, to a computer. Alternatively, port 75 may be used to outputdata to an HDTV decoder to display images corresponding to a selectedprogram or a program guide, for example.

Packets that contain PSI information are recognized by unit 45 asdestined for the controller 115 buffer in unit 60. The PSI packets aredirected to this buffer by unit 65 via units 45, 50 and 55 in a similarmanner to that described for packets containing program content.Controller 115 reads the PSI from unit 60 and stores it in internalmemory.

Controller 115 also generates condensed PSI (CPSI) from the stored PSIand incorporates the CPSI in a packetized datastream suitable forstorage on a selectable storage medium. The packet identification anddirection is governed by controller 115 in conjunction with the unit 45and unit 47 PID, destination and encryption key look-up tables andcontrol unit 65 functions in the manner previously described.

In addition, controller 115 is coupled to a communication interface unit116 that operates in a manner similar to interface unit 1113 in FIG. 1.That is, unit 116 provides the capability to upload and downloadinformation to and from the Internet. Communication interface unit 116includes, for example, a modem for connecting to an Internet serviceprovider, e.g., via a telephone line or via a cable television line. Thecommunication capability allows the system shown in FIG. 2 to provideelectronic message capability and Internet related features such as webbrowsing in addition to receiving television programming.

FIG. 3 is a flow chart of an exemplary program which, according to thepresent invention, may be executed by controller 1110 of FIG. 1,controller 115 of FIG. 2, or any other suitably programmed controlarrangement of an electronic host device. The term “electronic hostdevice” as used herein is not limited to television receivers orpersonal computers, but rather encompasses hybrids thereof (e.g.,PCTVs), cable television converter boxes, suitably equipped audiovisualprogram recorders (e.g., video tape recorders), satellite televisionand/or data signal converters, program guide receiver units, and thelike, regardless of whether incorporated into a television receiver orpersonal computer or connected externally thereto. It will beappreciated that the exemplary program may be implemented in hardware,software, or a combination thereof.

The exemplary program, when executed, facilitates electronic linking ofcontents of an electronic message to program information, and alsofacilitates implementation of programs associated with programinformation matching the contents of the electronic message, inaccordance with the present invention. A person skilled in the art wouldreadily recognize from the flow chart and the following description thatthe exemplary program when executed by any one of the systemsillustrated in FIGS. 1 and 2 or by any other suitably programmedelectronic host device will provide substantially the same features andadvantages in accordance with the present invention. Therefore, to avoidredundancy, the exemplary program will be described below only withrespect to the exemplary hardware implementation of the electronic hostdevice shown in FIG. 1.

In FIG. 1, the microprocessor 1110 is connected to the EEPROM 1127. Theexemplary program may be stored in the EEPROM 1127 for execution by themicroprocessor 1110. One object of the exemplary program is toelectronically link program information in an electronic program guide(EPG) (e.g., the StarSight® information) and/or in an extended programguide, to contents of an incoming or received electronic message. Thisway, the advantages associated with linking program information to termsin an electronic message can be achieved, according to the presentinvention, without requiring the electronic message sender to have acorresponding host device or program guide capabilities.

According to the exemplary program, the controller 1110 initiallyexecutes the step S1 of receiving an electronic message (e.g., viacommunication interface 1113). The incoming electronic messagepreferably is processed and stored in a substantially conventional way.The controller 1110 then performs the step S2 of comparing terms in theelectronic message to terms in the program information of the EPG.

The program information of the EPG can include, for example, a programstart time, a program end time, a program duration, a channel via whichthe program is transmitted, characteristic information, and combinationsthereof. Examples of the characteristic information include programtitle, program theme, program category, program keywords, a programdescription, program type (e.g. audio, video, audiovisual, computer,Internet, and the like), and program repeat frequency (e.g., once perweek, daily, etc.). While the program information preferably is drawnfor comparison from the StarSight Module 1160 where it is stored, it isunderstood that the present invention is not limited in this regard. Tothe contrary, the program information can be extracted for comparisonfrom the EEPROM 1127, from the communication interface unit 1113, or thelike.

Based on the comparison performed in step 2, the controller 1110 causesthe electronic message to be displayed in step 3 so that any terms inthe electronic message which have a match in the program information aredistinguishable from terms which have no such match. An electronic linkpreferably is established by the controller 1110 between any matchedterm in the electronic message and the program information which has amatch for that or those term(s). The electronic link preferably includesa recipient-selectable version of the matched term which is displayed inthe electronic message.

FIG. 4 shows an exemplary electronic message display 400 which isgenerated by the controller 1110 when the controller 1110 is programmedto link terms in an incoming electronic message to program informationin the electronic program guide (EPG) (e.g., the StarSight® informationin the system of FIG. 1 or program guide information from program guidepackets in the digital data stream processed by the system in FIG. 2),as well as program information in the extended program guide. The terms402 which have a match in the program information of the EPG or theextended program guide are designated by underlined text in theexemplary display of FIG. 4. It is understood, however, that thisdesignation can be provided using other distinguishing characteristics,such as different colors of text, different typeface, different styling,and the like.

The term “Inside World Politics” 404, for example, has a match in theprogram information which is a program title for a program as shown incell 530 of an EPG display 500. The controller 1110 therefore displaysthe term 404 with underlining and establishes an electronic link.Selection of the term 404 will cause, for example, EPG 500 to bedisplayed with the show “Inside World Politics” to be highlighted asshown in FIG. 5.

The term “downtown”, for example, has a match in the program informationwhich provides maps of a region. The controller 1110 therefore displaysthe term “downtown” with underlining and establishes an electronic linkwhereby selection of the term “downtown” from the electronic messagedisplay 400 causes or facilitates implementation of the correspondingextended program information. If the controller 1110 is programmed toeffect automatic implementation in response to selection of the term“downtown”, then the controller 1110 responds to such a selection bydisplaying the relevant map(s). In this regard, the present inventionprovides a system which establishes an electronic link so that selectionof the matched term(s) by a user effects implementation of a respectiveprogram which is defined by the program information having the match.

Preferably, the automatic implementation is performed based on thematch-containing program information. In particular, the controller 1110responds to a selection of the matched term by tuning to a specifiedchannel, communicating with a specified remote computer server, orconnecting to a specified web-site, as specified by the match-containingprogram information.

The term “traffic” similarly has a match in the extended programinformation relating to traffic reports. Selection of the term “traffic”therefore causes the controller 1110 to access and display the relevanttraffic reports.

Thus, in the exemplary context of extended program guide information(e.g. where the extended guide information provides news, sports,traffic, and/or weather information), the controller 1110 can beprogrammed to provide automatic program implementation by downloading ortuning to information in certain channels and/or segments of theextended program information.

For matched terms which relate to a single item of television-relatedprogram information, the controller 1110 may be programmed to respond toselection of the matched term by automatically implementing the relevanttelevision program. Examples of such implementation include displayingof a program which corresponds to the matching program information(e.g., automatic tuning to that program if it is currently being airedor setting a timer for tuning at a later time if the program is notbeing aired but will be broadcast at a later time), recording of theprogram, and displaying all or parts of the program information whichcontains the matched term.

In the context of web-sites, examples of automatic implementationinclude establishing a communication link to that particular web-site orto a particular “page” of the web-site. Similarly, examples of automaticimplementation, in the context of computer programs, include downloadingand/or execution of such computer programs.

Alternatively, the controller 1110 can be programmed to respondinteractively to selection of the matched term(s) by causing a menu ofuser-selectable choices to be displayed to the user, each choicecorresponding to a particular option on how the program of interest willbe implemented. Preferably, this is performed by the controller (e.g.,controller 1110) automatically based on the program information whichcontains the matching term.

The controller 1110, in this regard, may be programmed so that arecipient's selection of the matched term (e.g., “downtown” or“traffic”) causes the controller 1110 to display an electronicallygenerated menu of choices, each of the choices being selectable by therecipient to effect the action described by the choice. Examples ofchoices for the term “downtown” include displaying of a description ofmaps which cover the downtown area, displaying of the actual maps,disregarding of the electronic link (i.e., returning to the electronicmessage display 400), and the like.

For matched terms which relate to a single item of television-relatedprogram information, the controller 1110 preferably is programmed torespond to selection of the matched term by displaying choices on howand whether to implement the relevant television program. Examples ofsuch choices include displaying of a program which corresponds to thematching program information (e.g., automatic tuning to that program ifit is currently being aired or setting a timer for tuning at a latertime if the program is not being aired but will be broadcast at a latertime), recording of the program, and displaying all or parts of theprogram information having the match.

Preferably, the television-encompassing version of the host device shownin FIG. 11 s associated with a recording device (not shown), and theselector is actuatable to effect recording of the television programwhen the electronic message recipient selects the matched termassociated with a television program and elects to record the televisionprogram.

In the foregoing example for the term “downtown”, the subject term hadonly one match in the collection of program information. Some terms,however, will have multiple matches. The term “5 pm” is an example of aterm having multiple matches. In particular, it has matches in theprogram information of several programs which air at 5 pm. Thus,selection of the term “5 pm” causes the controller 1110 to visuallydisplay the portion of the electronic program guide which carries theline-up of such programs. The program identifiers in the resultingprogram line-up then are selectable to implement or otherwise facilitateimplementation of desired ones of the programs.

More specifically, the controller 1110 generates a menu of programswhich air or are accessible at or about 5 pm by displaying programidentifiers on a display device associated with the electronic hostdevice. Each of the program identifiers designates one of a plurality ofprograms which can be implemented (e.g., displayed, audibly broadcast,or executed) by the electronic host device itself or which can beimplemented at 5 pm by a display device, audio equipment or a computerassociated with the electronic host device.

In generating the menu, the CPU 1112 transfers formatted StarSight® EPGdisplay data from StarSight® module 1160 via I²C BUS to OSD processor1117. OSD processor 1117 operates in a conventional manner to produce R,G, and B video signals OSD_RGB that, when coupled to the display device,will produce a displayed image representing on-screen displayinformation such as graphics and/or text comprising an EPG. Thison-screen display information includes, among other things, theaforementioned program identifiers. It also may include characteristicinformation pertaining to each of the programs represented by theprogram identifiers. Examples of the characteristic information includeprogram title, program theme, program category, program keywords,program description, program type, program length, program startingtime, program ending time, repeat frequency, or combinations thereof.

The display data included in the EPG display and produced by OSDprocessor 1117 is incorporated into the output signal by VSP 1155 inresponse to fast switch signal FSW. When controller 1110 detectsactivation of the EPG display (e.g., when a user presses an appropriatekey on remote control 1125 or when a matched term 402 having multiplematches is otherwise selected), controller 1110 causes OSD processor1117 to produce the EPG menu display using the program informationprovided by the StarSight® module 1160. Controller 1110 causes VSP 1155to combine the EPG display menu from OSD processor 1117 and the videoimage signal in response to signal FSW to produce a display includingthe EPG menu. The EPG menu can occupy all or only a portion of thedisplay area.

An exemplary EPG menu 500 is shown in FIG. 5. The menu 500 includes a“grid guide” 500A which shows a program schedule in a time-and-channelformat, similar to a TV schedule listed in a newspaper One dimension(e.g. the horizontal dimension) of the “grid guide” 500A shows the timeinformation 501, while the other dimension (e.g. the vertical dimension)of the “grid guide” 500A shows channel information. When an abbreviatedelement 530 of the “grid guide” is highlighted or a cursor is locatedthereon, as will be described hereinafter, truncated parts of theabbreviated element 530 appear in a “highlighted text” field 540 of themenu 500.

In the menu 500, each of the program identifiers (e.g., channel numbers510–516, channel station names 520–526, web-site identifier 570,Internet identifier 550, electronic message identifier 560, and thelike) is selectable by a user to implement respective ones of theprograms. In particular, the control program in EEPROM 1127 causes thecontroller 1110 to monitor the location of a position indicator, such asa cursor and/or highlighting, on the EPG menu display. A user controlsthe location of the position indicator using direction and selectionkeys of remote control 1125. Alternatively, the system could include amouse device or an appropriate pointer device.

Controller 1110 detects activation of a selection device, such asclicking of a mouse button, and evaluates current cursor/highlightinglocation information in conjunction with EPG menu data being displayedto determine the function desired (e.g., implementing a particularprogram). If such activation of the selection device is performed whilethe cursor and/or highlighting is located on one of the programidentifiers, the controller 1110 determines that the correspondingprogram is to be implemented (i.e., displayed, audibly broadcast, and/orexecuted). Controller 1110 subsequently activates the control actionassociated with the selected program.

If, for example, the selected program identifier represents a web-site,the controller 1110 implements a web-browsing program and accesses thecorresponding web-site. When the selected program identifier isassociated with an audio program, video program, or audiovisual program,the controller 1110 responds by tuning the electronic host device or anassociated receiver to the appropriate channel and by displaying and/oraudibly broadcasting that program. Highlighting of such programs andsubsequent selection of other function icons on the menu 500 canimplement automatic tuning at a later time to the selected program orautomatic recording thereof by the electronic host device or by anotherdevice connected to the electronic host device.

Selection of the “Internet” identifier 550 causes the controller 1110 toimplement a web-browsing program through an Internet service provider,while selection of the “e-mail” identifier 560 causes the controller1110 to implement an electronic message transmission and/or receptionprogram through the same or a different Internet service provider.

Alternatively, the controller 1110 is programmed or otherwise adapted toperform the step of displaying an electronically generated menu ofchoices in response to a user's selection of one of the programidentifiers. Each of the choices is user-selectable to effect an actiondescribed by each choice, the action being performed with respect to theprogram which corresponds to the selected program identifier. Examplesof such choices include displaying of the program (whether now orlater), recording of the program, or displaying of the programinformation associated with the selected program.

The menu 500 in FIG. 5 thus provides a generally effective, versatile,and convenient EPG arrangement which is activated when a matched term inan incoming electronic message is selected and a match for that termappears in the program information of more than one of the programslisted in the EPG.

The exemplary electronic message display 400 in FIG. 1 also includesseveral user-selectable icons 410–430 which represent various electronicmessage functions which can be carried out in a manner well known in theart. Examples of such functions include archiving e-mail, forwardinge-mail, replying to electronic messages, deleting electronic messages,going back to a previous “Window”, scrolling through an electronicmessage, reading e-mail, composing e-mail, reviewing messages in amailbox, filing or storing of electronic messages, attaching files, andexiting. Preferably, the controller 1110 is programmed to executerespective ones of the functions in response to selection of acorresponding one of the icons 410–430.

The exemplary embodiment shown in FIG. 1 and the method described above,when executed by the exemplary embodiment, advantageously provide anelectronic message interface adapted to link terms in an electronicmessage to program information in an electronic program guide (EPG). Anelectronic message receiver adapted to receive an electronic message isprovided by the controller 1110, in combination with the communicationinterface 1113 and suitable electronic message reception software. Acomparison unit associated with the electronic message receiver andadapted to compare terms in the electronic message to terms in theprogram information of the EPC can be provided by appropriatelyprogramming the controller 1110 to perform the comparison.Alternatively, a separate and distinct comparison unit can be connectedto the controller 1110.

The interface also preferably includes a display device connected atleast indirectly to the comparison unit (e.g., controller 1110) andadapted to display the electronic message so that any terms in theelectronic message which have a match in the program information basedon the comparison of terms, are distinguishable from terms which have nosuch match.

The resulting interface provides an electronic link between programinformation and terms in the incoming electronic message. A selector(e.g., remote control 1125, a mouse, keyboard, virtual keyboard, and/ormovable cursor) is adapted to select, in response to user operation, anyterm with a match via the electronic link. Implementation then isfacilitated either immediately or after selecting among differentprograms which match the term and/or among different choices on how andwhether to implement the program.

The word “term”, as used in the foregoing examples, is not intended tobe limited to a single word. Instead, it is understood that thecomparison of “terms” can be performed on strings of words or even onstrings of characters which amount to less than one word.

While the interactive implementation scheme wherein the controller 1110provides choices to the recipient of how and if to implement the subjectprogram has been described as an alternative to the automaticimplementation schemes (wherein the selection of the program causes thecontroller 1110 to automatically implement the subject program). It willbe understood that the controller 1110 can be programmed to provide ahybrid of such schemes. In particular, the controller 1110 can beprogrammed to automatically implement programs which are best suited forsuch automatic implementation (e.g. according to the match-containingprogram information) and to interactively provide choices to therecipient when the program information associated with the selectedprogram indicates that the underlying program is best suited forinteractive implementation.

While the present invention finds much usefulness in the realm ofelectronic host devices which are connected to or defined by atelevision set, the present invention is not limited to such electronichost devices. The present invention may be implemented, for example,with a computer as the electronic host device, and the user-selectablematched term 402 may include an electronic shortcut to a correspondingcomputer program.

The method described above and the systems through which it can beimplemented (e.g., the systems shown in FIGS. 1 and 2) thus provide anelectronically generated interface which facilitates linking of programguide information in an electronic message to program guide informationof a recipient, and implementation of programs associated therewith. Theelectronically generated interface also facilitates generation ofelectronic program guides based on information in an electronic message,without having to manually transcribe or memorize terms in theelectronic message.

While each host device (e.g., the devices illustrated in FIGS. 1 and 2)preferably is programmed or otherwise adapted to provide all of theforegoing features, it is understood that the invention is not limitedin this regard. That is, host devices man provide only one or some ofthe features described above, such host devices nevertheless fallingwell within the spirit and scope of the present invention.

In describing the preferred embodiments, some components were describedas being hardware components and others were described as softwarecomponents. Such components, however, can be implemented using hardware,software, or combinations thereof.

It is to be understood that the embodiments and variations shown anddescribed herein are for illustrations only and that variousmodifications may be implemented by those skilled in the art withoutdeparting from the scope and spirit of the invention.

1. A method of linking terms in an electronic message to programinformation in an electronic program guide (EPG), said method comprisingthe steps of: receiving an electronic message; comparing terms in saidelectronic message to terms in the program information of the EPG;displaying said electronic message so that any terms in said electronicmessage which have a match in said program information based on saidstep of comparing terms, are distinguishable from terms which have nosuch match; establishing an electronic link between at least one term insaid electronic message and any program information which has a matchfor said at least one term; and displaying an electronically generatedmenu of program identifiers in response to user selection of said atleast one term in said electronic message, wherein said at least oneterm appears in the program information of more than one program in theEPG, each of the program identifiers corresponding to a respective oneof said more than one program and being user selectable to effectimplementation of said respective one of said more than one program. 2.A method of linking terms in an electronic message to programinformation in an electronic program guide (EPG), said method comprisingthe steps of: receiving an electronic message; comparing terms in saidelectronic message to terms in the program information of the EPG;displaying said electronic message so that any terms in said electronicmessage which have a match in said program information based on saidstep of comparing terms, are distinguishable from terms which have nosuch match; establishing an electronic link between at least one term insaid electronic message and any program information which has a matchfor said at least one term; and displaying an electronically generatedmenu of program identifiers in response to user selection of said atleast one term in said electronic message, wherein said at least oneterm appears in the program information of more than one program in theEPG, wherein each of the program identifiers corresponds to a respectiveone of said more than one program and is user selectable; and displayingan electronically generated menu of choices in response to userselection of one of said program identifiers, each of said choices beinguser selectable to effect an action described by each choice, saidaction being performed with respect to said respective one of said morethan one program which corresponds to said one of said programidentifiers.
 3. The method of claim 2, wherein said choices include:displaying of said respective one of said more than one program;recording of said respective one of said more than one program; anddisplaying of the program information of said respective one of saidmore than one program.
 4. An electronic message interface adapted tolink terms in an electronic message to program information in anelectronic program guide (EPG), said electronic message interfacecomprising: a receiver adapted to receive an electronic message;comparison unit associated with said receiver, said comparison unitbeing adapted to compare terms in said electronic message to terms inthe program information of the EPG; a display device coupled to saidcomparison unit and adapted to display said electronic message so thatany terms in said electronic message which have a match in said programinformation based on the comparing of terms, are distinguishable fromterms which have no such match; and an electronic link between at leastone term in said electronic message and any program information whichhas a match for said at least one term, wherein said display devicefurther is adapted to display a menu of program identifiers in responseto user selection of said at least one term in said electronic message,wherein said at least one term appears in the program information ofmore than one program in the EPG, each of the program identifierscorresponding to a respective one of said more than one program andbeing user selectable to effect implementation of said respective one ofsaid more than one program.
 5. An electronic message interface adaptedto link terms in an electronic message to program information in anelectronic program guide (EPG), said electronic message interfacecomprising: a receiver adapted to receive an electronic message;comparison unit associated with said receiver, said comparison unitbeing adapted to compare terms in said electronic message to terms inthe program information of the EPG; a display device coupled to saidcomparison unit and adapted to display said electronic message so thatany terms in said electronic message which have a match in said programinformation based on the comparing of terms, are distinguishable fromterms which have no such match; and an electronic link between at leastone term in said electronic message and any program information whichhas a match for said at least one term, wherein said display devicefurther is adapted to display a menu of program identifiers in responseto user selection of said at least one term in said electronic message,wherein said at least one term appears in the program information ofmore than one program in the EPG, wherein each of the programidentifiers corresponds to a respective one of said more than oneprogram and is user selectable; and wherein said display device furtheris adapted to display a menu of choices in response to user selection ofone of said program identifiers, each of said choices being userselectable to effect an action described by each choice, said actionbeing performed with respect to said respective one of said more thanone program which corresponds to said one of said program identifiers.6. The interface of claim 5, wherein said choices include: displaying ofsaid respective one of said more than one program; recording of saidrespective one of said more than one program; and displaying of theprogram information of said respective one of said more than oneprogram.